(1) Field of the Invention
The present invention relates generally to computer systems and in particular to a storage system which provides data storage to a host system.
(2) Description of Related Art
Such a storage system has physical storage media for the storage of data, for example one or more storage devices such as a hard disk drive. Typically, data is stored in the physical storage media in one or more partitions. For example, the partitions may be specified in a partition table contained in the master boot record stored at the start of the storage space.
Each partition uses a file system to organise the storage of data. In particular, the file system specifies how the partition is divided into logical blocks and how data files are allocated to different blocks. Typically the file system may specify clusters as being constituted by a plurality of blocks and may use a file allocation table to specify how files are allocated to sectors, and therefore to blocks. The file system is specified in file system information stored in the physical storage media. Typically, the file system information is stored at the start of the logical storage space of each partition and includes various information such as parameters of the file system including the size of the clusters. The file system information may also include a file allocation table which specifies how files are allocated to individual clusters. The host system reads the file system information, manages the storage of data in accordance therewith and updates the file allocation table.
The logical blocks within the partition are specified using logical block addresses. Thus, the host system sends access requests to the storage system which specify logical block addresses for data access (e.g. reading or writing). The storage system then performs the data access in accordance with an access request. The physical storage of data on the physical storage media is controlled by the storage system and is transparent to the host system.
The present invention is concerned in particular with adjustment of the data storage capacity provided to the host system by a partition of the storage system.
Usually the data storage capacity of a partition of the physical storage media is fixed. However, there are many scenarios in which it is desirable to adjust the data capacity of the storage system. This creates inconvenience to the user as follows.
One scenario is when additional physical storage media is introduced into the storage system, for example by inserting an additional data storage device. In this scenario, the user typically has two options.
A first option is to create a new partition occupying the new space of the additional physical storage media. A file system can then be created in the new partition. However, thereafter the user and/or host system must organise the storage of data into the two separate partitions. For example, the two partitions may appear to the user as two different drives (e.g. C:\ and D:\). This is inconvenient and it would be preferable for the new storage space of the additional physical storage media to be allocated to an existing partition.
Accordingly, a second option is for the user to cause the host system to perform a process, which may comprise part of the operating system of the host system or may be a third party tool, which can expand the existing partition and file system to fill the new space. However, such processes are complicated and usually require the user to have specialist knowledge. Thus, in this scenario it would be desirable to adjust the data storage capacity of an existing partition in a manner which is more convenient to the user than using such a process.
Another scenario in which it would be desirable to adjust the data storage capacity of a partition is where the user desires to utilise a plurality of different partitions. This is desirable in many situations, for example to present each partition as a different drive to the user (for example C:\, D:\, etc). In this case the user typically needs to define the data storage capacity of each partition in advance. Thereafter, the partitions are fixed. This can be inconvenient to the user who may desire to change the data capacity of the different partitions at a future time depending on the relative usage of the different partitions.
As in the first scenario it might be conceivable for the user to cause the host system to perform a process, which may be a part of the operating system or may be a third party tool, to contract one partition and expand another partition using the capacity thus freed. However, such a process will be inconvenient and will typically require a user to have specialist knowledge. Thus, in this scenario also, it would be desirable to provide adjustment of the data storage capacity of the partitions in a manner which is convenient to the user.